Relating Functional and Imperative Session Types

نویسندگان

چکیده

Imperative session types provide an imperative interface to session-typed communication. In such interface, channel references are first-class objects with operations that change the typestate of channel. Compared functional type APIs, program structure is simpler at surface, but required model current state communication throughout. Following early work explored approach, a significant body on has neglected approach and opts for uses linear manage soundly. We demonstrate subsumes by exhibiting typing semantics preserving translation into system types. further show untyped backwards from calculus preserving. restrict becomes Thus, we precisely capture difference in expressiveness two calculi conclude lack largely due restrictions imposed its system.

برای دانلود باید عضویت طلایی داشته باشید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Lightweight Functional Session Types

Row types provide an account of extensibility that combines well with parametric polymorphism and type inference. We discuss the integration of row types and session types in a concurrent functional programming language, and how row types can be used to describe extensibility in session-typed communication.

متن کامل

Asynchronous Functional Session Types

Session types support a type-theoretic formulation of structured patterns of communication, so that the communication behaviour of agents in a distributed system can be verified by static type checking. Applications include network protocols, business processes, and operating system services. In this paper we define a multithreaded functional language with session types, which unifies, simplifi...

متن کامل

Non-Blocking Concurrent Imperative Programming with Session Types

Concurrent C0 is an imperative programming language in the C family with session-typed messagepassing concurrency. The previously proposed semantics implements asynchronous (non-blocking) output; we extend it here with non-blocking input. A key idea is to postpone message reception as much as possible by interpreting receive commands as a request for a message. We implemented our ideas as a tra...

متن کامل

Session Types for Functional Multithreading

We define a language whose type system, incorporating session types, allows complex protocols to be specified by types and verified by static typechecking. A session type, associated with a communication channel, specifies the state transitions of a protocol and also the data types of messages associated with transitions; thus typechecking can verify both correctness of individual messages and ...

متن کامل

Existential Types for Imperative Languages

We integrate existential types into a strongly typed C-like language. In particular, we show how a bad combination of existential types, mutation, and aliasing can cause a subtle violation of type safety. We explore two independent ways to strengthen the type system to restore safety. One restricts the mutation of existential packages. The other restricts the types of aliases of existential pac...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

ژورنال

عنوان ژورنال: Logical Methods in Computer Science

سال: 2022

ISSN: ['1860-5974']

DOI: https://doi.org/10.46298/lmcs-18(3:33)2022